Vertex AI WorkbenchインスタンスをTerraformで作成するチュートリアルをやってみた
みなさんこんにちは!
クルトンです。
今回は、Vertex AI関連のリソースをIaC化してみたいと考えていたところ、Terraformを使って作成するナイスなチュートリアルを見つけたのでやってみます。
やってみた
まずCloud Shellを立ち上げます。
以降は、Cloud Shell上で入力してください。
- ホームディレクトリへ移動するために
cd
します mkdir terraform
で今回使用するファイルの置き場所(フォルダ)を作成しますcd terraform
で作成したフォルダへ移動しますnano main.tf
やvim main.tf
で作成するリソースに関して記述したファイルを作成します
main.tfファイルには以下の内容を書き、リソースgoogle_notebooks_instance
のproject
とlocation
の値をご自身の環境に合わせて書き換えてください。
resource "google_project_service" "notebooks" { provider = google service = "notebooks.googleapis.com" disable_on_destroy = false } resource "google_notebooks_instance" "basic_instance" { project = "PROJECT_ID" name = "notebooks-instance-basic" provider = google location = "LOCATION" machine_type = "e2-medium" vm_image { project = "deeplearning-platform-release" image_family = "tf-ent-2-9-cu113-notebooks" } depends_on = [ google_project_service.notebooks ] }
ちなみに東京リージョンは"asia-northeast1"ですので自分はasia-northeast1-a
と書きました。PROJECT_IDについては、Google Cloudのトップ画面で表示されています。
ファイルが用意できましたら、次にterraform init
コマンドを打ちます。以下のような文言がCloud Shell上で確認できましたらOKです!
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
ここまで出来ますと、あとは実際にリソース作成が可能になります。
ここからのGoogle Cloudリソース作成の手順としては、以下のようになります。
terraform plan
コマンドを叩く- 作成するGoogle Cloudリソースがどのようなものか表示される。エラーがあればここで表示されます。
Enter a value:
と聞かれた場合はYesと入力する
terraform apply
コマンドを叩く- 実際にGoogle Cloudリソースを作成する。
Enter a value:
と聞かれた場合は、リソース作成してOKか確認後にYesと入力する
上記コマンドを実際に順番に打っていきGoogle Cloudリソースの作成を完了してください。
ちなみに、コマンドを打つと以下の画像のような画面が出てくる場合は承認をクリックしてください。
お使いの環境によってはterraform plan
で以下のようなエラーが出るかもしれません。
Planning failed. Terraform encountered an error while generating this plan. ╷ │ Error: Error when reading or editing Project Service <プロジェクトID>/notebooks.googleapis.com: googleapi: Error 403: Cloud Resource Manager API has not been used in project <プロジェクトID> before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=<プロジェクトID> then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry. │ Details: │ [ │ { │ "@type": "type.googleapis.com/google.rpc.Help", │ "links": [ │ { │ "description": "Google developers console API activation", │ "url": "https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=<プロジェクトID>" │ } │ ] │ }, │ { │ "@type": "type.googleapis.com/google.rpc.ErrorInfo", │ "domain": "googleapis.com", │ "metadata": { │ "consumer": "projects/<プロジェクトID>", │ "service": "cloudresourcemanager.googleapis.com" │ }, │ "reason": "SERVICE_DISABLED" │ } │ ] │ , accessNotConfigured │ │ with google_project_service.notebooks, │ on main.tf line 1, in resource "google_project_service" "notebooks": │ 1: resource "google_project_service" "notebooks" { │ ╵
上記エラーが出た場合は、Cloud Resource Manager API
を有効にしてください。Cloud Shell上に表示されているURLをクリックすると、有効化できる画面が表示できますので便利です。
terraform apply
コマンドでGoogle Cloudリソースの作成が完了すると、Apply complete! Resources: added, changed, destroyed.
のような文言がCloud Shellで表示されます。
作成したものはVertex AIの画面、左ペインの中にあるワークベンチ
を触ると確認できます。
クリーンアップ
今回作成したGoogle Cloudリソースを全て削除するには、terraform destroy
コマンドを作成したmain.tf
ファイルがあるフォルダで実行してください。
Enter a value:
と聞かれますが、Yesと入力すると削除開始します。
終わりに
今回はGoogle Cloudの機械学習サービスであるVertex AIに関連したリソースを作成しました。インフラ構築というと、時間が掛かったり大変なイメージが個人的にあるのですが、Cloud Shell上でTerraformを使うととても簡単にできました。
今回取り扱わなかったですが、作成したGoogle Cloudリソースのインスタンスタイプを随時変更するなども簡単にできそうなので、Terraformは今後も使っていきたいですね。
今回はここまで。
それでは、また!